home *** CD-ROM | disk | FTP | other *** search
/ Aminet 24 / Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso / Aminet / dev / c / AmiVoGL_MDEV.lha / examples / fpoly.for < prev    next >
Text File  |  1991-06-03  |  3KB  |  202 lines

  1. c
  2. c drawpoly
  3. c
  4. c    draw some polygons
  5. c
  6.     subroutine drawpo
  7.  
  8. $INCLUDE: 'fvogl.h'
  9.  
  10.     integer *2 val
  11. c
  12. c    An array of points for a polygon
  13. c
  14.     real parray(3,4)
  15.     real vec(3)
  16.  
  17.     data parray/ -8.0, -8.0, 0.0,
  18.      +          -5.0, -8.0, 0.0,
  19.      +          -5.0, -5.0, 0.0,
  20.      +          -8.0, -5.0, 0.0 /
  21.  
  22.     call color(YELLOW)
  23.  
  24. c
  25. c Draw a polygon using poly, parray is our array of
  26. c points and 4 is the number of points in it.
  27. c
  28.     call poly(4, parray)
  29.  
  30.     call color(GREEN)
  31.  
  32. c
  33. c Draw a 5 sided figure by using bgnpolygon, v3f and endpolygon
  34. c
  35.     call polymo(PYM_LI)
  36.     call bgnpol
  37.         vec(1) = 0.0 
  38.         vec(2) = 0.0 
  39.         vec(3) = 0.0
  40.         call v3f(vec)
  41.  
  42.         vec(1) = 3.0 
  43.         vec(2) = 0.0 
  44.         vec(3) = 0.0
  45.         call v3f(vec)
  46.         
  47.         vec(1) = 3.0 
  48.         vec(2) = 4.0 
  49.         vec(3) = 0.0
  50.         call v3f(vec)
  51.         
  52.         vec(1) = -1.0 
  53.         vec(2) = 5.0 
  54.         vec(3) = 0.0
  55.         call v3f(vec)
  56.         
  57.         vec(1) = -2.0 
  58.         vec(2) = 2.0 
  59.         vec(3) = 0.0
  60.         call v3f(vec)
  61.     call endpol
  62.  
  63.     call color(MAGENT)
  64.  
  65. c
  66. c draw a sector representing a 1/4 circle
  67. c
  68.     call arc(1.5, -7.0, 3.0, 0, 900)
  69.         
  70.     call move2(1.5, -7.0)
  71.     call draw2(1.5, -4.0)
  72.  
  73.     call move2(1.5, -7.0)
  74.     call draw2(4.5, -7.0)
  75.  
  76.  
  77.  
  78.     idum = qread(val)
  79.  
  80.     end
  81.  
  82. c
  83. c drawpolyf
  84. c
  85. c    draw some polygons
  86. c
  87.     subroutine drawpf
  88.  
  89. $INCLUDE: 'fvogl.h'
  90.     
  91.     integer *2 val
  92. c
  93. c    An array of points for a polygon
  94. c
  95.     real parray(3,4)
  96.  
  97.     data parray/ -8.0, -8.0, 0.0,
  98.      +          -5.0, -8.0, 0.0,
  99.      +          -5.0, -5.0, 0.0,
  100.      +          -8.0, -5.0, 0.0 /
  101.  
  102.     call color(YELLOW)
  103.  
  104.     call polymo(PYM_FI)
  105. c
  106. c Draw a polygon using poly, parray is our array of
  107. c points and 4 is the number of points in it.
  108. c
  109.     call polf(4, parray)
  110.  
  111.     call color(GREEN)
  112.  
  113.         call pmv(0.0, 0.0, 0.0)
  114.                 call pdr(3.0, 0.0, 0.0)
  115.                 call pdr(3.0, 4.0, 0.0)
  116.                 call pdr(-1.0, 5.0, 0.0)
  117.                 call pdr(-2.0, 2.0, 0.0)
  118.         call pclos()
  119.  
  120.         call color(MAGENT)
  121.  
  122. c
  123. c draw a filled sector representing a 1/4 circle
  124. c
  125.         call arcf(1.5, -7.0, 3.0, 0, 900)
  126.  
  127.     idum = qread(val)
  128.  
  129.     end
  130. c
  131. c Using polygons, hatching, and filling.
  132. c
  133.     program fpoly
  134. $INCLUDE: 'fvogl.h'
  135. $INCLUDE: 'fvodevic.h'
  136.  
  137.     call winope('fpoly', 5)
  138.  
  139. c
  140. c    We are interested in keyboard events
  141. c
  142.     call unqdev(INPUTC)
  143.     call qdevic(KEYBD)
  144.  
  145. c
  146. c load a hershey font
  147. c
  148.     call hfont('futura.l', 8)
  149. c
  150. c clear to black
  151. c
  152.     call color(BLACK)
  153.     call clear
  154.  
  155. c
  156. c world coordinates are now in the range -10 to 10
  157. c in x, y, and z. Note that positive z is towards us.
  158. c
  159.     call ortho(-10.0, 10.0, -10.0, 10.0, 10.0, -10.0)
  160.  
  161.     call color(YELLOW)
  162.  
  163. c
  164. c write out the string 'Polygon from poly()' in the
  165. c starting at (-8.0, -4.0) and scaled to be 4.0 units long,
  166. c 0.5 units high.
  167. c
  168.     call hboxte(-8.0, -4.0, 4.0, 0.5,
  169.      +   'Polygon from poly()/ polf()', 27)
  170.  
  171.     call color(GREEN)
  172.  
  173. c
  174. c write out a scaled string starting at (0.0, 6.0)
  175. c
  176.     call hboxte(0.0, 6.0, 4.5, 0.5,
  177.      +   'Polygon from bgnpol()/ endpol()', 31)
  178.     call hboxte(0.0, 5.0, 4.5, 0.5,
  179.      +   '             pmv()/ pdr()/ pclos()', 34)
  180.  
  181.     call color(MAGENT)
  182.  
  183. c
  184. c draw some polygons
  185. c
  186.     call drawpo
  187.  
  188. c
  189. c  Rotate 20 degrees around x and 30 around y
  190. c
  191.     call rotate(200, 'x')
  192.     call rotate(300, 'y')
  193.  
  194. c
  195. c draw some polygons with filling
  196. c
  197.     call drawpf
  198.  
  199.     call gexit
  200.  
  201.     end
  202.